From 4ebeb1f756e8fd8f1349635dcdd53e81628d30ef Mon Sep 17 00:00:00 2001 From: Hunter Praska Date: Tue, 16 May 2017 13:43:22 -0500 Subject: [PATCH] Load local git name/email for cargo init Fixes #3920 --- src/cargo/ops/cargo_new.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/cargo/ops/cargo_new.rs b/src/cargo/ops/cargo_new.rs index 5b4f4faae..1e92aa5c7 100644 --- a/src/cargo/ops/cargo_new.rs +++ b/src/cargo/ops/cargo_new.rs @@ -6,6 +6,7 @@ use std::collections::BTreeMap; use rustc_serialize::{Decodable, Decoder}; use git2::Config as GitConfig; +use git2::Repository as GitRepository; use term::color::BLACK; @@ -514,7 +515,12 @@ fn get_environment_variable(variables: &[&str] ) -> Option{ } fn discover_author() -> CargoResult<(String, Option)> { - let git_config = GitConfig::open_default().ok(); + let cwd = env::current_dir()?; + let git_config = if let Ok(repo) = GitRepository::discover(&cwd) { + repo.config().ok() + } else { + GitConfig::open_default().ok() + }; let git_config = git_config.as_ref(); let name_variables = ["CARGO_NAME", "GIT_AUTHOR_NAME", "GIT_COMMITTER_NAME", "USER", "USERNAME", "NAME"]; -- 2.30.2